package cn.edu.lcvc.ebuy_lyj.service;


import java.sql.*;

/**
 * 数据库打开和关闭的通用类
 */
public class DBHelper {
    // 打开数据库，并且获取数据库Connection对象
    public static Connection getConnection() {
        Connection conn = null;//数据库连接对象，通过连接对象可以操作数据库(比如：ebuy_data)
        String url="jdbc:mysql://localhost:3306/data_lyj?characterEncoding=utf-8";//要连接的数据库的地址
        String username="root";//表示要连接Mysql数据库的账户名
        String password="12345";//表示要连接Mysql数据库的密码
        //步骤1.连接数据库
        try {
            Class.forName("com.mysql.jdbc.Driver");//声明要连接的数据库类型，mysql6.0版
            conn = DriverManager.getConnection(url, username, password);//指明要连接的数据库名称，账户名和密码
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }


    // 定义关闭数据库方法
    public static void closeConn(Connection conn, PreparedStatement pstmt, ResultSet rs) {
        try {
            if (rs != null) {
                rs.close();
            }
            if (pstmt != null) {
                pstmt.close();
            }
            if (conn != null) {
                conn.close();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }


//    public static void main(String[] args) {
//        Connection conn = null;//数据库连接对象，通过连接对象可以操作数据库(比如：ebuy_data)
//        String url="jdbc:mysql://localhost:3306/ebuy_data?characterEncoding=utf-8";//要连接的数据库的地址
//        String username="user";//表示要连接Mysql数据库的账户名
//        String password="user123456";//表示要连接Mysql数据库的密码
//        try {
//            //步骤1.连接数据库
//            Class.forName("com.mysql.jdbc.Driver");//声明要连接的数据库类型，mysql6.0版
//            conn = DriverManager.getConnection(url, username, password);//指明要连接的数据库名称，账户名和密码
//            //步骤2：操作数据库
//            String sql="select count(id) as num from admin where username='user' and password='321'";
//            PreparedStatement pstmt=conn.prepareStatement(sql);//将sql语句封装
//            ResultSet rs=pstmt.executeQuery();//在数据库执行SQL语句并且获取返回的结果
//            if(rs.next()){//rs.next()表示获取数据库表中的下一条记录
//                int num=rs.getInt(1);//获取第一列的值
//                if(num==1){
//                    System.out.println("登录成功");
//                }else{
//                    System.out.println("登录失败");
//                }
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }finally {
//            try {
//                //最后一个步骤：关闭数据库
//                conn.close();
//            } catch (SQLException throwables) {
//                throwables.printStackTrace();
//            }
//        }
//    }
}
